home *** CD-ROM | disk | FTP | other *** search
/ Aminet 45 / Aminet 45 (2001)(GTI - Schatztruhe)[!][Oct 2001].iso / Aminet / util / gnu / cvs-1.11.1p1.lha / contrib / dirfns.shar < prev    next >
SHell self-extracting ARchive  |  2001-02-28  |  11.1 KB

view JSON data     |     view as text     |     open on a Mac     |     open on a PC

This file was processed as: SHell self-extracting ARchive (archive/shar).

You can browse this item here: dirfns.shar

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert SHell self-extracting ARchive (archive/shar) ext Supported
1% dexvert Text File (text/txt) fallback Supported
100% file ASCII text default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% detectItEasy Format: plain text[LF] default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 65 63 68 6f 20 27 64 69 | 72 65 63 74 6f 72 79 2e |echo 'di|rectory.|
|00000010| 33 27 3a 0a 73 65 64 20 | 27 73 2f 5e 58 2f 2f 27 |3':.sed |'s/^X//'|
|00000020| 20 3e 27 64 69 72 65 63 | 74 6f 72 79 2e 33 27 20 | >'direc|tory.3' |
|00000030| 3c 3c 27 21 27 0a 58 2e | 54 48 20 44 49 52 45 43 |<<'!'.X.|TH DIREC|
|00000040| 54 4f 52 59 20 33 20 69 | 6d 70 6f 72 74 65 64 0a |TORY 3 i|mported.|
|00000050| 58 2e 44 41 20 39 20 4f | 63 74 20 31 39 38 35 0a |X.DA 9 O|ct 1985.|
|00000060| 58 2e 53 48 20 4e 41 4d | 45 0a 58 6f 70 65 6e 64 |X.SH NAM|E.Xopend|
|00000070| 69 72 2c 20 72 65 61 64 | 64 69 72 2c 20 74 65 6c |ir, read|dir, tel|
|00000080| 6c 64 69 72 2c 20 73 65 | 65 6b 64 69 72 2c 20 72 |ldir, se|ekdir, r|
|00000090| 65 77 69 6e 64 64 69 72 | 2c 20 63 6c 6f 73 65 64 |ewinddir|, closed|
|000000a0| 69 72 20 5c 2d 20 68 69 | 67 68 2d 6c 65 76 65 6c |ir \- hi|gh-level|
|000000b0| 20 64 69 72 65 63 74 6f | 72 79 20 6f 70 65 72 61 | directo|ry opera|
|000000c0| 74 69 6f 6e 73 0a 58 2e | 53 48 20 53 59 4e 4f 50 |tions.X.|SH SYNOP|
|000000d0| 53 49 53 0a 58 2e 42 20 | 23 69 6e 63 6c 75 64 65 |SIS.X.B |#include|
|000000e0| 20 3c 73 79 73 2f 74 79 | 70 65 73 2e 68 3e 0a 58 | <sys/ty|pes.h>.X|
|000000f0| 2e 62 72 0a 58 2e 42 20 | 23 69 6e 63 6c 75 64 65 |.br.X.B |#include|
|00000100| 20 3c 6e 64 69 72 2e 68 | 3e 0a 58 2e 50 50 0a 58 | <ndir.h|>.X.PP.X|
|00000110| 2e 53 4d 0a 58 2e 42 20 | 44 49 52 0a 58 2e 42 20 |.SM.X.B |DIR.X.B |
|00000120| 2a 6f 70 65 6e 64 69 72 | 28 66 69 6c 65 6e 61 6d |*opendir|(filenam|
|00000130| 65 29 0a 58 2e 62 72 0a | 58 2e 42 20 63 68 61 72 |e).X.br.|X.B char|
|00000140| 20 2a 66 69 6c 65 6e 61 | 6d 65 3b 0a 58 2e 50 50 | *filena|me;.X.PP|
|00000150| 0a 58 2e 53 4d 0a 58 2e | 42 20 73 74 72 75 63 74 |.X.SM.X.|B struct|
|00000160| 20 64 69 72 65 63 74 0a | 58 2e 42 20 2a 72 65 61 | direct.|X.B *rea|
|00000170| 64 64 69 72 28 64 69 72 | 70 29 0a 58 2e 62 72 0a |ddir(dir|p).X.br.|
|00000180| 58 2e 42 20 44 49 52 20 | 2a 64 69 72 70 3b 0a 58 |X.B DIR |*dirp;.X|
|00000190| 2e 50 50 0a 58 2e 53 4d | 0a 58 2e 42 20 6c 6f 6e |.PP.X.SM|.X.B lon|
|000001a0| 67 0a 58 2e 42 20 74 65 | 6c 6c 64 69 72 28 64 69 |g.X.B te|lldir(di|
|000001b0| 72 70 29 0a 58 2e 62 72 | 0a 58 2e 42 20 44 49 52 |rp).X.br|.X.B DIR|
|000001c0| 20 2a 64 69 72 70 3b 0a | 58 2e 50 50 0a 58 2e 53 | *dirp;.|X.PP.X.S|
|000001d0| 4d 0a 58 2e 42 20 73 65 | 65 6b 64 69 72 28 64 69 |M.X.B se|ekdir(di|
|000001e0| 72 70 2c 20 6c 6f 63 29 | 0a 58 2e 62 72 0a 58 2e |rp, loc)|.X.br.X.|
|000001f0| 42 20 44 49 52 20 2a 64 | 69 72 70 3b 0a 58 2e 62 |B DIR *d|irp;.X.b|
|00000200| 72 0a 58 2e 42 20 6c 6f | 6e 67 20 6c 6f 63 3b 0a |r.X.B lo|ng loc;.|
|00000210| 58 2e 50 50 0a 58 2e 53 | 4d 0a 58 2e 42 20 72 65 |X.PP.X.S|M.X.B re|
|00000220| 77 69 6e 64 64 69 72 28 | 64 69 72 70 29 0a 58 2e |winddir(|dirp).X.|
|00000230| 62 72 0a 58 2e 42 20 44 | 49 52 20 2a 64 69 72 70 |br.X.B D|IR *dirp|
|00000240| 3b 0a 58 2e 50 50 0a 58 | 2e 53 4d 0a 58 2e 42 20 |;.X.PP.X|.SM.X.B |
|00000250| 63 6c 6f 73 65 64 69 72 | 28 64 69 72 70 29 0a 58 |closedir|(dirp).X|
|00000260| 2e 62 72 0a 58 2e 42 20 | 44 49 52 20 2a 64 69 72 |.br.X.B |DIR *dir|
|00000270| 70 3b 0a 58 2e 53 48 20 | 44 45 53 43 52 49 50 54 |p;.X.SH |DESCRIPT|
|00000280| 49 4f 4e 0a 58 54 68 69 | 73 20 6c 69 62 72 61 72 |ION.XThi|s librar|
|00000290| 79 20 70 72 6f 76 69 64 | 65 73 20 68 69 67 68 2d |y provid|es high-|
|000002a0| 6c 65 76 65 6c 20 70 72 | 69 6d 69 74 69 76 65 73 |level pr|imitives|
|000002b0| 20 66 6f 72 20 64 69 72 | 65 63 74 6f 72 79 20 73 | for dir|ectory s|
|000002c0| 63 61 6e 6e 69 6e 67 2c | 0a 58 73 69 6d 69 6c 61 |canning,|.Xsimila|
|000002d0| 72 20 74 6f 20 74 68 6f | 73 65 20 61 76 61 69 6c |r to tho|se avail|
|000002e0| 61 62 6c 65 20 66 6f 72 | 20 34 2e 32 42 53 44 27 |able for| 4.2BSD'|
|000002f0| 73 20 28 76 65 72 79 20 | 64 69 66 66 65 72 65 6e |s (very |differen|
|00000300| 74 29 20 64 69 72 65 63 | 74 6f 72 79 20 73 79 73 |t) direc|tory sys|
|00000310| 74 65 6d 2e 0a 58 2e 5c | 22 54 68 65 20 70 75 72 |tem..X.\|"The pur|
|00000320| 70 6f 73 65 20 6f 66 20 | 74 68 69 73 20 6c 69 62 |pose of |this lib|
|00000330| 72 61 72 79 20 69 73 20 | 74 6f 20 73 69 6d 75 6c |rary is |to simul|
|00000340| 61 74 65 0a 58 2e 5c 22 | 74 68 65 20 6e 65 77 20 |ate.X.\"|the new |
|00000350| 66 6c 65 78 69 62 6c 65 | 20 6c 65 6e 67 74 68 20 |flexible| length |
|00000360| 64 69 72 65 63 74 6f 72 | 79 20 6e 61 6d 65 73 20 |director|y names |
|00000370| 6f 66 20 34 2e 32 62 73 | 64 20 55 4e 49 58 0a 58 |of 4.2bs|d UNIX.X|
|00000380| 2e 5c 22 6f 6e 20 74 6f | 70 20 6f 66 20 74 68 65 |.\"on to|p of the|
|00000390| 20 6f 6c 64 20 64 69 72 | 65 63 74 6f 72 79 20 73 | old dir|ectory s|
|000003a0| 74 72 75 63 74 75 72 65 | 20 6f 66 20 76 37 2e 0a |tructure| of v7..|
|000003b0| 58 49 74 20 69 6e 63 69 | 64 65 6e 74 61 6c 6c 79 |XIt inci|dentally|
|000003c0| 20 70 72 6f 76 69 64 65 | 73 20 65 61 73 79 20 70 | provide|s easy p|
|000003d0| 6f 72 74 61 62 69 6c 69 | 74 79 20 74 6f 20 61 6e |ortabili|ty to an|
|000003e0| 64 20 66 72 6f 6d 20 34 | 2e 32 42 53 44 20 28 69 |d from 4|.2BSD (i|
|000003f0| 6e 73 6f 66 61 72 0a 58 | 61 73 20 73 75 63 68 20 |nsofar.X|as such |
|00000400| 70 6f 72 74 61 62 69 6c | 69 74 79 20 69 73 20 6e |portabil|ity is n|
|00000410| 6f 74 20 63 6f 6d 70 72 | 6f 6d 69 73 65 64 20 62 |ot compr|omised b|
|00000420| 79 20 6f 74 68 65 72 20 | 34 2e 32 2f 56 41 58 20 |y other |4.2/VAX |
|00000430| 64 65 70 65 6e 64 65 6e | 63 69 65 73 29 2e 0a 58 |dependen|cies)..X|
|00000440| 2e 5c 22 49 74 20 61 6c | 6c 6f 77 73 20 70 72 6f |.\"It al|lows pro|
|00000450| 67 72 61 6d 73 20 74 6f | 20 62 65 20 63 6f 6e 76 |grams to| be conv|
|00000460| 65 72 74 65 64 20 69 6d | 6d 65 64 69 61 74 65 6c |erted im|mediatel|
|00000470| 79 0a 58 2e 5c 22 74 6f | 20 74 68 65 20 6e 65 77 |y.X.\"to| the new|
|00000480| 20 64 69 72 65 63 74 6f | 72 79 20 61 63 63 65 73 | directo|ry acces|
|00000490| 73 20 69 6e 74 65 72 66 | 61 63 65 2c 0a 58 2e 5c |s interf|ace,.X.\|
|000004a0| 22 73 6f 20 74 68 61 74 | 20 74 68 65 79 20 6e 65 |"so that| they ne|
|000004b0| 65 64 20 6f 6e 6c 79 20 | 62 65 20 72 65 6c 69 6e |ed only |be relin|
|000004c0| 6b 65 64 0a 58 2e 5c 22 | 77 68 65 6e 20 6d 6f 76 |ked.X.\"|when mov|
|000004d0| 65 64 20 74 6f 20 34 2e | 32 62 73 64 2e 0a 58 2e |ed to 4.|2bsd..X.|
|000004e0| 5c 22 49 74 20 69 73 20 | 6f 62 74 61 69 6e 65 64 |\"It is |obtained|
|000004f0| 20 77 69 74 68 20 74 68 | 65 20 6c 6f 61 64 65 72 | with th|e loader|
|00000500| 20 6f 70 74 69 6f 6e 0a | 58 2e 5c 22 2e 42 52 20 | option.|X.\".BR |
|00000510| 5c 2d 6c 6e 64 69 72 20 | 2e 0a 58 2e 50 50 0a 58 |\-lndir |..X.PP.X|
|00000520| 2e 49 20 4f 70 65 6e 64 | 69 72 0a 58 6f 70 65 6e |.I Opend|ir.Xopen|
|00000530| 73 20 74 68 65 20 64 69 | 72 65 63 74 6f 72 79 20 |s the di|rectory |
|00000540| 6e 61 6d 65 64 20 62 79 | 0a 58 2e 49 20 66 69 6c |named by|.X.I fil|
|00000550| 65 6e 61 6d 65 0a 58 61 | 6e 64 20 61 73 73 6f 63 |ename.Xa|nd assoc|
|00000560| 69 61 74 65 73 20 61 0a | 58 2e 49 20 64 69 72 65 |iates a.|X.I dire|
|00000570| 63 74 6f 72 79 20 73 74 | 72 65 61 6d 0a 58 77 69 |ctory st|ream.Xwi|
|00000580| 74 68 20 69 74 2e 0a 58 | 2e 49 20 4f 70 65 6e 64 |th it..X|.I Opend|
|00000590| 69 72 0a 58 72 65 74 75 | 72 6e 73 20 61 20 70 6f |ir.Xretu|rns a po|
|000005a0| 69 6e 74 65 72 20 74 6f | 20 62 65 20 75 73 65 64 |inter to| be used|
|000005b0| 20 74 6f 20 69 64 65 6e | 74 69 66 79 20 74 68 65 | to iden|tify the|
|000005c0| 0a 58 2e 49 20 64 69 72 | 65 63 74 6f 72 79 20 73 |.X.I dir|ectory s|
|000005d0| 74 72 65 61 6d 0a 58 69 | 6e 20 73 75 62 73 65 71 |tream.Xi|n subseq|
|000005e0| 75 65 6e 74 20 6f 70 65 | 72 61 74 69 6f 6e 73 2e |uent ope|rations.|
|000005f0| 0a 58 54 68 65 20 70 6f | 69 6e 74 65 72 0a 58 2e |.XThe po|inter.X.|
|00000600| 53 4d 0a 58 2e 42 20 4e | 55 4c 4c 0a 58 69 73 20 |SM.X.B N|ULL.Xis |
|00000610| 72 65 74 75 72 6e 65 64 | 20 69 66 0a 58 2e 49 20 |returned| if.X.I |
|00000620| 66 69 6c 65 6e 61 6d 65 | 0a 58 63 61 6e 6e 6f 74 |filename|.Xcannot|
|00000630| 20 62 65 20 61 63 63 65 | 73 73 65 64 20 6f 72 20 | be acce|ssed or |
|00000640| 69 73 20 6e 6f 74 20 61 | 20 64 69 72 65 63 74 6f |is not a| directo|
|00000650| 72 79 2e 0a 58 2e 50 50 | 0a 58 2e 49 20 52 65 61 |ry..X.PP|.X.I Rea|
|00000660| 64 64 69 72 0a 58 72 65 | 74 75 72 6e 73 20 61 20 |ddir.Xre|turns a |
|00000670| 70 6f 69 6e 74 65 72 20 | 74 6f 20 74 68 65 20 6e |pointer |to the n|
|00000680| 65 78 74 20 64 69 72 65 | 63 74 6f 72 79 20 65 6e |ext dire|ctory en|
|00000690| 74 72 79 2e 0a 58 49 74 | 20 72 65 74 75 72 6e 73 |try..XIt| returns|
|000006a0| 0a 58 2e 42 20 4e 55 4c | 4c 0a 58 75 70 6f 6e 20 |.X.B NUL|L.Xupon |
|000006b0| 72 65 61 63 68 69 6e 67 | 20 74 68 65 20 65 6e 64 |reaching| the end|
|000006c0| 20 6f 66 20 74 68 65 20 | 64 69 72 65 63 74 6f 72 | of the |director|
|000006d0| 79 20 6f 72 20 64 65 74 | 65 63 74 69 6e 67 0a 58 |y or det|ecting.X|
|000006e0| 61 6e 20 69 6e 76 61 6c | 69 64 0a 58 2e 49 20 73 |an inval|id.X.I s|
|000006f0| 65 65 6b 64 69 72 0a 58 | 6f 70 65 72 61 74 69 6f |eekdir.X|operatio|
|00000700| 6e 2e 0a 58 2e 50 50 0a | 58 2e 49 20 54 65 6c 6c |n..X.PP.|X.I Tell|
|00000710| 64 69 72 0a 58 72 65 74 | 75 72 6e 73 20 74 68 65 |dir.Xret|urns the|
|00000720| 20 63 75 72 72 65 6e 74 | 20 6c 6f 63 61 74 69 6f | current| locatio|
|00000730| 6e 20 61 73 73 6f 63 69 | 61 74 65 64 20 77 69 74 |n associ|ated wit|
|00000740| 68 20 74 68 65 20 6e 61 | 6d 65 64 0a 58 2e 49 20 |h the na|med.X.I |
|00000750| 64 69 72 65 63 74 6f 72 | 79 20 73 74 72 65 61 6d |director|y stream|
|00000760| 2e 0a 58 2e 50 50 0a 58 | 2e 49 20 53 65 65 6b 64 |..X.PP.X|.I Seekd|
|00000770| 69 72 0a 58 73 65 74 73 | 20 74 68 65 20 70 6f 73 |ir.Xsets| the pos|
|00000780| 69 74 69 6f 6e 20 6f 66 | 20 74 68 65 20 6e 65 78 |ition of| the nex|
|00000790| 74 0a 58 2e 49 20 72 65 | 61 64 64 69 72 0a 58 6f |t.X.I re|addir.Xo|
|000007a0| 70 65 72 61 74 69 6f 6e | 20 6f 6e 20 74 68 65 0a |peration| on the.|
|000007b0| 58 2e 49 20 64 69 72 65 | 63 74 6f 72 79 20 73 74 |X.I dire|ctory st|
|000007c0| 72 65 61 6d 2e 0a 58 54 | 68 65 20 6e 65 77 20 70 |ream..XT|he new p|
|000007d0| 6f 73 69 74 69 6f 6e 20 | 72 65 76 65 72 74 73 20 |osition |reverts |
|000007e0| 74 6f 20 74 68 65 20 6f | 6e 65 20 61 73 73 6f 63 |to the o|ne assoc|
|000007f0| 69 61 74 65 64 20 77 69 | 74 68 20 74 68 65 0a 58 |iated wi|th the.X|
|00000800| 2e 49 20 64 69 72 65 63 | 74 6f 72 79 20 73 74 72 |.I direc|tory str|
|00000810| 65 61 6d 0a 58 77 68 65 | 6e 20 74 68 65 0a 58 2e |eam.Xwhe|n the.X.|
|00000820| 49 20 74 65 6c 6c 64 69 | 72 0a 58 6f 70 65 72 61 |I telldi|r.Xopera|
|00000830| 74 69 6f 6e 20 77 61 73 | 20 70 65 72 66 6f 72 6d |tion was| perform|
|00000840| 65 64 2e 0a 58 56 61 6c | 75 65 73 20 72 65 74 75 |ed..XVal|ues retu|
|00000850| 72 6e 65 64 20 62 79 0a | 58 2e 49 20 74 65 6c 6c |rned by.|X.I tell|
|00000860| 64 69 72 0a 58 61 72 65 | 20 67 6f 6f 64 20 6f 6e |dir.Xare| good on|
|00000870| 6c 79 20 66 6f 72 20 74 | 68 65 20 6c 69 66 65 74 |ly for t|he lifet|
|00000880| 69 6d 65 20 6f 66 20 74 | 68 65 20 44 49 52 20 70 |ime of t|he DIR p|
|00000890| 6f 69 6e 74 65 72 20 66 | 72 6f 6d 20 0a 58 77 68 |ointer f|rom .Xwh|
|000008a0| 69 63 68 20 74 68 65 79 | 20 61 72 65 20 64 65 72 |ich they| are der|
|000008b0| 69 76 65 64 2e 0a 58 49 | 66 20 74 68 65 20 64 69 |ived..XI|f the di|
|000008c0| 72 65 63 74 6f 72 79 20 | 69 73 20 63 6c 6f 73 65 |rectory |is close|
|000008d0| 64 20 61 6e 64 20 74 68 | 65 6e 20 72 65 6f 70 65 |d and th|en reope|
|000008e0| 6e 65 64 2c 20 0a 58 74 | 68 65 20 0a 58 2e 49 20 |ned, .Xt|he .X.I |
|000008f0| 74 65 6c 6c 64 69 72 0a | 58 76 61 6c 75 65 20 6d |telldir.|Xvalue m|
|00000900| 61 79 20 62 65 20 69 6e | 76 61 6c 69 64 61 74 65 |ay be in|validate|
|00000910| 64 0a 58 64 75 65 20 74 | 6f 20 75 6e 64 65 74 65 |d.Xdue t|o undete|
|00000920| 63 74 65 64 20 64 69 72 | 65 63 74 6f 72 79 20 63 |cted dir|ectory c|
|00000930| 6f 6d 70 61 63 74 69 6f | 6e 20 69 6e 20 34 2e 32 |ompactio|n in 4.2|
|00000940| 42 53 44 2e 0a 58 49 74 | 20 69 73 20 73 61 66 65 |BSD..XIt| is safe|
|00000950| 20 74 6f 20 75 73 65 20 | 61 20 70 72 65 76 69 6f | to use |a previo|
|00000960| 75 73 0a 58 2e 49 20 74 | 65 6c 6c 64 69 72 0a 58 |us.X.I t|elldir.X|
|00000970| 76 61 6c 75 65 20 69 6d | 6d 65 64 69 61 74 65 6c |value im|mediatel|
|00000980| 79 20 61 66 74 65 72 20 | 61 20 63 61 6c 6c 20 74 |y after |a call t|
|00000990| 6f 0a 58 2e 49 20 6f 70 | 65 6e 64 69 72 0a 58 61 |o.X.I op|endir.Xa|
|000009a0| 6e 64 20 62 65 66 6f 72 | 65 20 61 6e 79 20 63 61 |nd befor|e any ca|
|000009b0| 6c 6c 73 20 74 6f 0a 58 | 2e 49 20 72 65 61 64 64 |lls to.X|.I readd|
|000009c0| 69 72 2e 0a 58 2e 50 50 | 0a 58 2e 49 20 52 65 77 |ir..X.PP|.X.I Rew|
|000009d0| 69 6e 64 64 69 72 0a 58 | 72 65 73 65 74 73 20 74 |inddir.X|resets t|
|000009e0| 68 65 20 70 6f 73 69 74 | 69 6f 6e 20 6f 66 20 74 |he posit|ion of t|
|000009f0| 68 65 20 6e 61 6d 65 64 | 0a 58 2e 49 20 64 69 72 |he named|.X.I dir|
|00000a00| 65 63 74 6f 72 79 20 73 | 74 72 65 61 6d 0a 58 74 |ectory s|tream.Xt|
|00000a10| 6f 20 74 68 65 20 62 65 | 67 69 6e 6e 69 6e 67 20 |o the be|ginning |
|00000a20| 6f 66 20 74 68 65 20 64 | 69 72 65 63 74 6f 72 79 |of the d|irectory|
|00000a30| 2e 0a 58 2e 50 50 0a 58 | 2e 49 20 43 6c 6f 73 65 |..X.PP.X|.I Close|
|00000a40| 64 69 72 0a 58 63 61 75 | 73 65 73 20 74 68 65 20 |dir.Xcau|ses the |
|00000a50| 6e 61 6d 65 64 0a 58 2e | 49 20 64 69 72 65 63 74 |named.X.|I direct|
|00000a60| 6f 72 79 20 73 74 72 65 | 61 6d 0a 58 74 6f 20 62 |ory stre|am.Xto b|
|00000a70| 65 20 63 6c 6f 73 65 64 | 2c 0a 58 61 6e 64 20 74 |e closed|,.Xand t|
|00000a80| 68 65 20 73 74 72 75 63 | 74 75 72 65 20 61 73 73 |he struc|ture ass|
|00000a90| 6f 63 69 61 74 65 64 20 | 77 69 74 68 20 74 68 65 |ociated |with the|
|00000aa0| 20 44 49 52 20 70 6f 69 | 6e 74 65 72 20 74 6f 20 | DIR poi|nter to |
|00000ab0| 62 65 20 66 72 65 65 64 | 2e 0a 58 2e 50 50 0a 58 |be freed|..X.PP.X|
|00000ac0| 41 0a 58 2e 49 20 64 69 | 72 65 63 74 0a 58 73 74 |A.X.I di|rect.Xst|
|00000ad0| 72 75 63 74 75 72 65 20 | 69 73 20 61 73 20 66 6f |ructure |is as fo|
|00000ae0| 6c 6c 6f 77 73 3a 0a 58 | 2e 50 50 0a 58 2e 52 53 |llows:.X|.PP.X.RS|
|00000af0| 0a 58 2e 6e 66 0a 58 73 | 74 72 75 63 74 09 64 69 |.X.nf.Xs|truct.di|
|00000b00| 72 65 63 74 20 7b 0a 58 | 09 2f 2a 20 75 6e 73 69 |rect {.X|./* unsi|
|00000b10| 67 6e 65 64 20 2a 2f 20 | 6c 6f 6e 67 09 64 5f 69 |gned */ |long.d_i|
|00000b20| 6e 6f 3b 09 2f 2a 20 69 | 6e 6f 64 65 20 6e 75 6d |no;./* i|node num|
|00000b30| 62 65 72 20 6f 66 20 65 | 6e 74 72 79 20 2a 2f 0a |ber of e|ntry */.|
|00000b40| 58 09 75 6e 73 69 67 6e | 65 64 20 73 68 6f 72 74 |X.unsign|ed short|
|00000b50| 09 64 5f 72 65 63 6c 65 | 6e 3b 09 2f 2a 20 6c 65 |.d_recle|n;./* le|
|00000b60| 6e 67 74 68 20 6f 66 20 | 74 68 69 73 20 72 65 63 |ngth of |this rec|
|00000b70| 6f 72 64 20 2a 2f 0a 58 | 09 75 6e 73 69 67 6e 65 |ord */.X|.unsigne|
|00000b80| 64 20 73 68 6f 72 74 09 | 64 5f 6e 61 6d 6c 65 6e |d short.|d_namlen|
|00000b90| 3b 09 2f 2a 20 6c 65 6e | 67 74 68 20 6f 66 20 73 |;./* len|gth of s|
|00000ba0| 74 72 69 6e 67 20 69 6e | 20 64 5f 6e 61 6d 65 20 |tring in| d_name |
|00000bb0| 2a 2f 0a 58 09 63 68 61 | 72 09 64 5f 6e 61 6d 65 |*/.X.cha|r.d_name|
|00000bc0| 5b 4d 41 58 4e 41 4d 4c | 45 4e 20 2b 20 31 5d 3b |[MAXNAML|EN + 1];|
|00000bd0| 09 2f 2a 20 6e 61 6d 65 | 20 6d 75 73 74 20 62 65 |./* name| must be|
|00000be0| 20 6e 6f 20 6c 6f 6e 67 | 65 72 20 74 68 61 6e 20 | no long|er than |
|00000bf0| 74 68 69 73 20 2a 2f 0a | 58 7d 3b 0a 58 2e 66 69 |this */.|X};.X.fi|
|00000c00| 0a 58 2e 52 45 0a 58 2e | 50 50 0a 58 54 68 65 0a |.X.RE.X.|PP.XThe.|
|00000c10| 58 2e 49 20 64 5f 72 65 | 63 6c 65 6e 0a 58 66 69 |X.I d_re|clen.Xfi|
|00000c20| 65 6c 64 20 69 73 20 6d | 65 61 6e 69 6e 67 6c 65 |eld is m|eaningle|
|00000c30| 73 73 20 69 6e 20 6e 6f | 6e 2d 34 2e 32 42 53 44 |ss in no|n-4.2BSD|
|00000c40| 20 73 79 73 74 65 6d 73 | 20 61 6e 64 20 73 68 6f | systems| and sho|
|00000c50| 75 6c 64 20 62 65 20 69 | 67 6e 6f 72 65 64 2e 0a |uld be i|gnored..|
|00000c60| 58 54 68 65 20 75 73 65 | 20 6f 66 20 61 0a 58 2e |XThe use| of a.X.|
|00000c70| 49 20 6c 6f 6e 67 0a 58 | 66 6f 72 0a 58 2e 49 20 |I long.X|for.X.I |
|00000c80| 64 5f 69 6e 6f 0a 58 69 | 73 20 61 6c 73 6f 20 61 |d_ino.Xi|s also a|
|00000c90| 20 34 2e 32 42 53 44 69 | 73 6d 3b 0a 58 2e 49 20 | 4.2BSDi|sm;.X.I |
|00000ca0| 69 6e 6f 5f 74 0a 58 28 | 73 65 65 0a 58 2e 49 52 |ino_t.X(|see.X.IR|
|00000cb0| 20 74 79 70 65 73 20 28 | 35 29 29 0a 58 73 68 6f | types (|5)).Xsho|
|00000cc0| 75 6c 64 20 62 65 20 75 | 73 65 64 20 65 6c 73 65 |uld be u|sed else|
|00000cd0| 77 68 65 72 65 2e 0a 58 | 54 68 65 20 6d 61 63 72 |where..X|The macr|
|00000ce0| 6f 0a 58 2e 49 20 44 49 | 52 53 49 5a 28 64 70 29 |o.X.I DI|RSIZ(dp)|
|00000cf0| 0a 58 67 69 76 65 73 20 | 74 68 65 20 6d 69 6e 69 |.Xgives |the mini|
|00000d00| 6d 75 6d 20 6d 65 6d 6f | 72 79 20 73 69 7a 65 20 |mum memo|ry size |
|00000d10| 6e 65 65 64 65 64 20 74 | 6f 20 68 6f 6c 64 20 74 |needed t|o hold t|
|00000d20| 68 65 0a 58 2e 49 20 64 | 69 72 65 63 74 0a 58 76 |he.X.I d|irect.Xv|
|00000d30| 61 6c 75 65 20 70 6f 69 | 6e 74 65 64 20 74 6f 20 |alue poi|nted to |
|00000d40| 62 79 0a 58 2e 49 52 20 | 64 70 20 2c 0a 58 77 69 |by.X.IR |dp ,.Xwi|
|00000d50| 74 68 20 74 68 65 20 6d | 69 6e 69 6d 75 6d 20 6e |th the m|inimum n|
|00000d60| 65 63 65 73 73 61 72 79 | 20 61 6c 6c 6f 63 61 74 |ecessary| allocat|
|00000d70| 69 6f 6e 20 66 6f 72 0a | 58 2e 49 52 20 64 5f 6e |ion for.|X.IR d_n|
|00000d80| 61 6d 65 20 2e 0a 58 2e | 50 50 0a 58 54 68 65 20 |ame ..X.|PP.XThe |
|00000d90| 70 72 65 66 65 72 72 65 | 64 20 77 61 79 20 74 6f |preferre|d way to|
|00000da0| 20 73 65 61 72 63 68 20 | 74 68 65 20 63 75 72 72 | search |the curr|
|00000db0| 65 6e 74 20 64 69 72 65 | 63 74 6f 72 79 20 66 6f |ent dire|ctory fo|
|00000dc0| 72 20 65 6e 74 72 79 20 | 60 60 6e 61 6d 65 27 27 |r entry |``name''|
|00000dd0| 20 69 73 3a 0a 58 2e 50 | 50 0a 58 2e 52 53 0a 58 | is:.X.P|P.X.RS.X|
|00000de0| 2e 6e 66 0a 58 09 6c 65 | 6e 20 3d 20 73 74 72 6c |.nf.X.le|n = strl|
|00000df0| 65 6e 28 6e 61 6d 65 29 | 3b 0a 58 09 64 69 72 70 |en(name)|;.X.dirp|
|00000e00| 20 3d 20 6f 70 65 6e 64 | 69 72 28 22 2e 22 29 3b | = opend|ir(".");|
|00000e10| 0a 58 09 69 66 20 28 64 | 69 72 70 20 3d 3d 20 4e |.X.if (d|irp == N|
|00000e20| 55 4c 4c 29 20 7b 0a 58 | 09 09 66 70 72 69 6e 74 |ULL) {.X|..fprint|
|00000e30| 66 28 73 74 64 65 72 72 | 2c 20 22 25 73 3a 20 63 |f(stderr|, "%s: c|
|00000e40| 61 6e 27 74 20 72 65 61 | 64 20 64 69 72 65 63 74 |an't rea|d direct|
|00000e50| 6f 72 79 20 2e 5c 5c 6e | 22 2c 20 61 72 67 76 5b |ory .\\n|", argv[|
|00000e60| 30 5d 29 3b 0a 58 09 09 | 72 65 74 75 72 6e 20 4e |0]);.X..|return N|
|00000e70| 4f 54 5f 46 4f 55 4e 44 | 3b 0a 58 09 7d 0a 58 09 |OT_FOUND|;.X.}.X.|
|00000e80| 77 68 69 6c 65 20 28 28 | 64 70 20 3d 20 72 65 61 |while ((|dp = rea|
|00000e90| 64 64 69 72 28 64 69 72 | 70 29 29 20 21 3d 20 4e |ddir(dir|p)) != N|
|00000ea0| 55 4c 4c 29 0a 58 09 09 | 69 66 20 28 64 70 2d 3e |ULL).X..|if (dp->|
|00000eb0| 64 5f 6e 61 6d 6c 65 6e | 20 3d 3d 20 6c 65 6e 20 |d_namlen| == len |
|00000ec0| 26 26 20 73 74 72 63 6d | 70 28 64 70 2d 3e 64 5f |&& strcm|p(dp->d_|
|00000ed0| 6e 61 6d 65 2c 20 6e 61 | 6d 65 29 20 3d 3d 20 30 |name, na|me) == 0|
|00000ee0| 29 20 7b 0a 58 09 09 09 | 63 6c 6f 73 65 64 69 72 |) {.X...|closedir|
|00000ef0| 28 64 69 72 70 29 3b 0a | 58 09 09 09 72 65 74 75 |(dirp);.|X...retu|
|00000f00| 72 6e 20 46 4f 55 4e 44 | 3b 0a 58 09 09 7d 0a 58 |rn FOUND|;.X..}.X|
|00000f10| 09 63 6c 6f 73 65 64 69 | 72 28 64 69 72 70 29 3b |.closedi|r(dirp);|
|00000f20| 0a 58 09 72 65 74 75 72 | 6e 20 4e 4f 54 5f 46 4f |.X.retur|n NOT_FO|
|00000f30| 55 4e 44 3b 0a 58 2e 52 | 45 0a 58 2e 5c 22 2e 53 |UND;.X.R|E.X.\".S|
|00000f40| 48 20 4c 49 4e 4b 49 4e | 47 0a 58 2e 5c 22 54 68 |H LINKIN|G.X.\"Th|
|00000f50| 69 73 20 6c 69 62 72 61 | 72 79 20 69 73 20 61 63 |is libra|ry is ac|
|00000f60| 63 65 73 73 65 64 20 62 | 79 20 73 70 65 63 69 66 |cessed b|y specif|
|00000f70| 79 69 6e 67 20 60 60 2d | 6c 6e 64 69 72 27 27 20 |ying ``-|lndir'' |
|00000f80| 61 73 20 74 68 65 0a 58 | 2e 5c 22 6c 61 73 74 20 |as the.X|.\"last |
|00000f90| 61 72 67 75 6d 65 6e 74 | 20 74 6f 20 74 68 65 20 |argument| to the |
|00000fa0| 63 6f 6d 70 69 6c 65 20 | 6c 69 6e 65 2c 20 65 2e |compile |line, e.|
|00000fb0| 67 2e 3a 0a 58 2e 5c 22 | 2e 50 50 0a 58 2e 5c 22 |g.:.X.\"|.PP.X.\"|
|00000fc0| 09 63 63 20 2d 49 2f 75 | 73 72 2f 69 6e 63 6c 75 |.cc -I/u|sr/inclu|
|00000fd0| 64 65 2f 6e 64 69 72 20 | 2d 6f 20 70 72 6f 67 20 |de/ndir |-o prog |
|00000fe0| 70 72 6f 67 2e 63 20 2d | 6c 6e 64 69 72 0a 58 2e |prog.c -|lndir.X.|
|00000ff0| 53 48 20 22 53 45 45 20 | 41 4c 53 4f 22 0a 58 6f |SH "SEE |ALSO".Xo|
|00001000| 70 65 6e 28 32 29 2c 0a | 58 63 6c 6f 73 65 28 32 |pen(2),.|Xclose(2|
|00001010| 29 2c 0a 58 72 65 61 64 | 28 32 29 2c 0a 58 6c 73 |),.Xread|(2),.Xls|
|00001020| 65 65 6b 28 32 29 0a 58 | 2e 53 48 20 48 49 53 54 |eek(2).X|.SH HIST|
|00001030| 4f 52 59 0a 58 57 72 69 | 74 74 65 6e 20 62 79 0a |ORY.XWri|tten by.|
|00001040| 58 4b 69 72 6b 20 4d 63 | 4b 75 73 69 63 6b 20 61 |XKirk Mc|Kusick a|
|00001050| 74 20 42 65 72 6b 65 6c | 65 79 20 28 75 63 62 76 |t Berkel|ey (ucbv|
|00001060| 61 78 21 6d 63 6b 75 73 | 69 63 6b 29 2e 0a 58 4d |ax!mckus|ick)..XM|
|00001070| 69 73 63 65 6c 6c 61 6e | 65 6f 75 73 20 62 75 67 |iscellan|eous bug|
|00001080| 20 66 69 78 65 73 20 66 | 72 6f 6d 20 65 6c 73 65 | fixes f|rom else|
|00001090| 77 68 65 72 65 2e 0a 58 | 54 68 65 20 73 69 7a 65 |where..X|The size|
|000010a0| 20 6f 66 20 74 68 65 20 | 64 61 74 61 20 73 74 72 | of the |data str|
|000010b0| 75 63 74 75 72 65 20 68 | 61 73 20 62 65 65 6e 20 |ucture h|as been |
|000010c0| 64 65 63 72 65 61 73 65 | 64 20 74 6f 20 61 76 6f |decrease|d to avo|
|000010d0| 69 64 20 65 78 63 65 73 | 73 69 76 65 0a 58 73 70 |id exces|sive.Xsp|
|000010e0| 61 63 65 20 77 61 73 74 | 65 20 75 6e 64 65 72 20 |ace wast|e under |
|000010f0| 56 37 20 28 77 68 65 72 | 65 20 66 69 6c 65 6e 61 |V7 (wher|e filena|
|00001100| 6d 65 73 20 61 72 65 20 | 31 34 20 63 68 61 72 61 |mes are |14 chara|
|00001110| 63 74 65 72 73 20 61 74 | 20 6d 6f 73 74 29 2e 0a |cters at| most)..|
|00001120| 58 46 6f 72 20 6f 62 73 | 63 75 72 65 20 68 69 73 |XFor obs|cure his|
|00001130| 74 6f 72 69 63 61 6c 20 | 72 65 61 73 6f 6e 73 2c |torical |reasons,|
|00001140| 20 74 68 65 20 69 6e 63 | 6c 75 64 65 20 66 69 6c | the inc|lude fil|
|00001150| 65 20 69 73 20 61 6c 73 | 6f 20 61 76 61 69 6c 61 |e is als|o availa|
|00001160| 62 6c 65 0a 58 61 73 0a | 58 2e 49 52 20 3c 6e 64 |ble.Xas.|X.IR <nd|
|00001170| 69 72 2f 73 79 73 2f 64 | 69 72 2e 68 3e 20 2e 0a |ir/sys/d|ir.h> ..|
|00001180| 58 54 68 65 20 42 65 72 | 6b 65 6c 65 79 20 76 65 |XThe Ber|keley ve|
|00001190| 72 73 69 6f 6e 20 6c 69 | 76 65 64 20 69 6e 20 61 |rsion li|ved in a|
|000011a0| 20 73 65 70 61 72 61 74 | 65 20 6c 69 62 72 61 72 | separat|e librar|
|000011b0| 79 20 28 5c 66 49 5c 2d | 6c 6e 64 69 72 5c 66 52 |y (\fI\-|lndir\fR|
|000011c0| 29 2c 0a 58 77 68 65 72 | 65 61 73 20 6f 75 72 73 |),.Xwher|eas ours|
|000011d0| 20 69 73 0a 58 70 61 72 | 74 20 6f 66 20 74 68 65 | is.Xpar|t of the|
|000011e0| 20 43 20 6c 69 62 72 61 | 72 79 2c 20 61 6c 74 68 | C libra|ry, alth|
|000011f0| 6f 75 67 68 20 74 68 65 | 20 73 65 70 61 72 61 74 |ough the| separat|
|00001200| 65 20 6c 69 62 72 61 72 | 79 20 69 73 20 72 65 74 |e librar|y is ret|
|00001210| 61 69 6e 65 64 20 74 6f | 0a 58 6d 61 78 69 6d 69 |ained to|.Xmaximi|
|00001220| 7a 65 20 63 6f 6d 70 61 | 74 69 62 69 6c 69 74 79 |ze compa|tibility|
|00001230| 2e 0a 58 2e 50 50 0a 58 | 54 68 69 73 20 6d 61 6e |..X.PP.X|This man|
|00001240| 75 61 6c 20 70 61 67 65 | 20 68 61 73 20 62 65 65 |ual page| has bee|
|00001250| 6e 20 73 75 62 73 74 61 | 6e 74 69 61 6c 6c 79 20 |n substa|ntially |
|00001260| 72 65 77 72 69 74 74 65 | 6e 20 74 6f 20 62 65 20 |rewritte|n to be |
|00001270| 69 6e 66 6f 72 6d 61 74 | 69 76 65 20 69 6e 0a 58 |informat|ive in.X|
|00001280| 74 68 65 20 61 62 73 65 | 6e 63 65 20 6f 66 20 61 |the abse|nce of a|
|00001290| 20 34 2e 32 42 53 44 20 | 6d 61 6e 75 61 6c 2e 0a | 4.2BSD |manual..|
|000012a0| 58 2e 53 48 20 42 55 47 | 53 0a 58 54 68 65 0a 58 |X.SH BUG|S.XThe.X|
|000012b0| 2e 49 20 44 49 52 53 49 | 5a 0a 58 6d 61 63 72 6f |.I DIRSI|Z.Xmacro|
|000012c0| 20 61 63 74 75 61 6c 6c | 79 20 77 61 73 74 65 73 | actuall|y wastes|
|000012d0| 20 61 20 62 69 74 20 6f | 66 20 73 70 61 63 65 20 | a bit o|f space |
|000012e0| 64 75 65 20 74 6f 20 73 | 6f 6d 65 20 70 61 64 64 |due to s|ome padd|
|000012f0| 69 6e 67 20 72 65 71 75 | 69 72 65 6d 65 6e 74 73 |ing requ|irements|
|00001300| 0a 58 74 68 61 74 20 61 | 72 65 20 61 6e 20 61 72 |.Xthat a|re an ar|
|00001310| 74 69 66 61 63 74 20 6f | 66 20 34 2e 32 42 53 44 |tifact o|f 4.2BSD|
|00001320| 2e 0a 58 2e 50 50 0a 58 | 54 68 65 20 72 65 74 75 |..X.PP.X|The retu|
|00001330| 72 6e 65 64 20 76 61 6c | 75 65 20 6f 66 0a 58 2e |rned val|ue of.X.|
|00001340| 49 20 72 65 61 64 64 69 | 72 0a 58 70 6f 69 6e 74 |I readdi|r.Xpoint|
|00001350| 73 20 74 6f 20 61 20 73 | 74 61 74 69 63 20 61 72 |s to a s|tatic ar|
|00001360| 65 61 20 74 68 61 74 20 | 77 69 6c 6c 20 62 65 20 |ea that |will be |
|00001370| 6f 76 65 72 77 72 69 74 | 74 65 6e 20 62 79 20 73 |overwrit|ten by s|
|00001380| 75 62 73 65 71 75 65 6e | 74 20 63 61 6c 6c 73 2e |ubsequen|t calls.|
|00001390| 0a 58 2e 50 50 0a 58 54 | 68 65 72 65 20 61 72 65 |.X.PP.XT|here are|
|000013a0| 20 73 6f 6d 65 20 75 6e | 66 6f 72 74 75 6e 61 74 | some un|fortunat|
|000013b0| 65 20 6e 61 6d 65 20 63 | 6f 6e 66 6c 69 63 74 73 |e name c|onflicts|
|000013c0| 20 77 69 74 68 20 74 68 | 65 20 5c 66 49 72 65 61 | with th|e \fIrea|
|000013d0| 6c 5c 66 52 20 56 37 0a | 58 64 69 72 65 63 74 6f |l\fR V7.|Xdirecto|
|000013e0| 72 79 20 73 74 72 75 63 | 74 75 72 65 20 64 65 66 |ry struc|ture def|
|000013f0| 69 6e 69 74 69 6f 6e 73 | 2e 0a 21 0a 65 63 68 6f |initions|..!.echo|
|00001400| 20 27 64 69 72 2e 68 27 | 3a 0a 73 65 64 20 27 73 | 'dir.h'|:.sed 's|
|00001410| 2f 5e 58 2f 2f 27 20 3e | 27 64 69 72 2e 68 27 20 |/^X//' >|'dir.h' |
|00001420| 3c 3c 27 21 27 0a 58 2f | 2a 09 64 69 72 2e 68 09 |<<'!'.X/|*.dir.h.|
|00001430| 34 2e 34 09 38 32 2f 30 | 37 2f 32 35 09 2a 2f 0a |4.4.82/0|7/25.*/.|
|00001440| 58 0a 58 2f 2a 0a 58 20 | 2a 20 41 20 64 69 72 65 |X.X/*.X |* A dire|
|00001450| 63 74 6f 72 79 20 63 6f | 6e 73 69 73 74 73 20 6f |ctory co|nsists o|
|00001460| 66 20 73 6f 6d 65 20 6e | 75 6d 62 65 72 20 6f 66 |f some n|umber of|
|00001470| 20 62 6c 6f 63 6b 73 20 | 6f 66 20 44 49 52 42 4c | blocks |of DIRBL|
|00001480| 4b 53 49 5a 0a 58 20 2a | 20 62 79 74 65 73 2c 20 |KSIZ.X *| bytes, |
|00001490| 77 68 65 72 65 20 44 49 | 52 42 4c 4b 53 49 5a 20 |where DI|RBLKSIZ |
|000014a0| 69 73 20 63 68 6f 73 65 | 6e 20 73 75 63 68 20 74 |is chose|n such t|
|000014b0| 68 61 74 20 69 74 20 63 | 61 6e 20 62 65 20 74 72 |hat it c|an be tr|
|000014c0| 61 6e 73 66 65 72 72 65 | 64 0a 58 20 2a 20 74 6f |ansferre|d.X * to|
|000014d0| 20 64 69 73 6b 20 69 6e | 20 61 20 73 69 6e 67 6c | disk in| a singl|
|000014e0| 65 20 61 74 6f 6d 69 63 | 20 6f 70 65 72 61 74 69 |e atomic| operati|
|000014f0| 6f 6e 20 28 65 2e 67 2e | 20 35 31 32 20 62 79 74 |on (e.g.| 512 byt|
|00001500| 65 73 20 6f 6e 20 6d 6f | 73 74 20 6d 61 63 68 69 |es on mo|st machi|
|00001510| 6e 65 73 29 2e 0a 58 20 | 2a 0a 58 20 2a 20 45 61 |nes)..X |*.X * Ea|
|00001520| 63 68 20 44 49 52 42 4c | 4b 53 49 5a 20 62 79 74 |ch DIRBL|KSIZ byt|
|00001530| 65 20 62 6c 6f 63 6b 20 | 63 6f 6e 74 61 69 6e 73 |e block |contains|
|00001540| 20 73 6f 6d 65 20 6e 75 | 6d 62 65 72 20 6f 66 20 | some nu|mber of |
|00001550| 64 69 72 65 63 74 6f 72 | 79 20 65 6e 74 72 79 0a |director|y entry.|
|00001560| 58 20 2a 20 73 74 72 75 | 63 74 75 72 65 73 2c 20 |X * stru|ctures, |
|00001570| 77 68 69 63 68 20 61 72 | 65 20 6f 66 20 76 61 72 |which ar|e of var|
|00001580| 69 61 62 6c 65 20 6c 65 | 6e 67 74 68 2e 20 20 45 |iable le|ngth. E|
|00001590| 61 63 68 20 64 69 72 65 | 63 74 6f 72 79 20 65 6e |ach dire|ctory en|
|000015a0| 74 72 79 20 68 61 73 0a | 58 20 2a 20 61 20 73 74 |try has.|X * a st|
|000015b0| 72 75 63 74 20 64 69 72 | 65 63 74 20 61 74 20 74 |ruct dir|ect at t|
|000015c0| 68 65 20 66 72 6f 6e 74 | 20 6f 66 20 69 74 2c 20 |he front| of it, |
|000015d0| 63 6f 6e 74 61 69 6e 69 | 6e 67 20 69 74 73 20 69 |containi|ng its i|
|000015e0| 6e 6f 64 65 20 6e 75 6d | 62 65 72 2c 0a 58 20 2a |node num|ber,.X *|
|000015f0| 20 74 68 65 20 6c 65 6e | 67 74 68 20 6f 66 20 74 | the len|gth of t|
|00001600| 68 65 20 65 6e 74 72 79 | 2c 20 61 6e 64 20 74 68 |he entry|, and th|
|00001610| 65 20 6c 65 6e 67 74 68 | 20 6f 66 20 74 68 65 20 |e length| of the |
|00001620| 6e 61 6d 65 20 63 6f 6e | 74 61 69 6e 65 64 20 69 |name con|tained i|
|00001630| 6e 0a 58 20 2a 20 74 68 | 65 20 65 6e 74 72 79 2e |n.X * th|e entry.|
|00001640| 20 20 54 68 65 73 65 20 | 61 72 65 20 66 6f 6c 6c | These |are foll|
|00001650| 6f 77 65 64 20 62 79 20 | 74 68 65 20 6e 61 6d 65 |owed by |the name|
|00001660| 20 70 61 64 64 65 64 20 | 74 6f 20 61 20 34 20 62 | padded |to a 4 b|
|00001670| 79 74 65 20 62 6f 75 6e | 64 61 72 79 0a 58 20 2a |yte boun|dary.X *|
|00001680| 20 77 69 74 68 20 6e 75 | 6c 6c 20 62 79 74 65 73 | with nu|ll bytes|
|00001690| 2e 20 20 41 6c 6c 20 6e | 61 6d 65 73 20 61 72 65 |. All n|ames are|
|000016a0| 20 67 75 61 72 61 6e 74 | 65 65 64 20 6e 75 6c 6c | guarant|eed null|
|000016b0| 20 74 65 72 6d 69 6e 61 | 74 65 64 2e 0a 58 20 2a | termina|ted..X *|
|000016c0| 20 54 68 65 20 6d 61 78 | 69 6d 75 6d 20 6c 65 6e | The max|imum len|
|000016d0| 67 74 68 20 6f 66 20 61 | 20 6e 61 6d 65 20 69 6e |gth of a| name in|
|000016e0| 20 61 20 64 69 72 65 63 | 74 6f 72 79 20 69 73 20 | a direc|tory is |
|000016f0| 4d 41 58 4e 41 4d 4c 45 | 4e 2e 0a 58 20 2a 0a 58 |MAXNAMLE|N..X *.X|
|00001700| 20 2a 20 54 68 65 20 6d | 61 63 72 6f 20 44 49 52 | * The m|acro DIR|
|00001710| 53 49 5a 28 64 70 29 20 | 67 69 76 65 73 20 74 68 |SIZ(dp) |gives th|
|00001720| 65 20 61 6d 6f 75 6e 74 | 20 6f 66 20 73 70 61 63 |e amount| of spac|
|00001730| 65 20 72 65 71 75 69 72 | 65 64 20 74 6f 20 72 65 |e requir|ed to re|
|00001740| 70 72 65 73 65 6e 74 0a | 58 20 2a 20 61 20 64 69 |present.|X * a di|
|00001750| 72 65 63 74 6f 72 79 20 | 65 6e 74 72 79 2e 20 20 |rectory |entry. |
|00001760| 46 72 65 65 20 73 70 61 | 63 65 20 69 6e 20 61 20 |Free spa|ce in a |
|00001770| 64 69 72 65 63 74 6f 72 | 79 20 69 73 20 72 65 70 |director|y is rep|
|00001780| 72 65 73 65 6e 74 65 64 | 20 62 79 0a 58 20 2a 20 |resented| by.X * |
|00001790| 65 6e 74 72 69 65 73 20 | 77 68 69 63 68 20 68 61 |entries |which ha|
|000017a0| 76 65 20 64 70 2d 3e 64 | 5f 72 65 63 6c 65 6e 20 |ve dp->d|_reclen |
|000017b0| 3e 3d 20 44 49 52 53 49 | 5a 28 64 70 29 2e 20 20 |>= DIRSI|Z(dp). |
|000017c0| 41 6c 6c 20 44 49 52 42 | 4c 4b 53 49 5a 20 62 79 |All DIRB|LKSIZ by|
|000017d0| 74 65 73 0a 58 20 2a 20 | 69 6e 20 61 20 64 69 72 |tes.X * |in a dir|
|000017e0| 65 63 74 6f 72 79 20 62 | 6c 6f 63 6b 20 61 72 65 |ectory b|lock are|
|000017f0| 20 63 6c 61 69 6d 65 64 | 20 62 79 20 74 68 65 20 | claimed| by the |
|00001800| 64 69 72 65 63 74 6f 72 | 79 20 65 6e 74 72 69 65 |director|y entrie|
|00001810| 73 2e 20 20 54 68 69 73 | 0a 58 20 2a 20 75 73 75 |s. This|.X * usu|
|00001820| 61 6c 6c 79 20 72 65 73 | 75 6c 74 73 20 69 6e 20 |ally res|ults in |
|00001830| 74 68 65 20 6c 61 73 74 | 20 65 6e 74 72 79 20 69 |the last| entry i|
|00001840| 6e 20 61 20 64 69 72 65 | 63 74 6f 72 79 20 68 61 |n a dire|ctory ha|
|00001850| 76 69 6e 67 20 61 20 6c | 61 72 67 65 0a 58 20 2a |ving a l|arge.X *|
|00001860| 20 64 70 2d 3e 64 5f 72 | 65 63 6c 65 6e 2e 20 20 | dp->d_r|eclen. |
|00001870| 57 68 65 6e 20 65 6e 74 | 72 69 65 73 20 61 72 65 |When ent|ries are|
|00001880| 20 64 65 6c 65 74 65 64 | 20 66 72 6f 6d 20 61 20 | deleted| from a |
|00001890| 64 69 72 65 63 74 6f 72 | 79 2c 20 74 68 65 0a 58 |director|y, the.X|
|000018a0| 20 2a 20 73 70 61 63 65 | 20 69 73 20 72 65 74 75 | * space| is retu|
|000018b0| 72 6e 65 64 20 74 6f 20 | 74 68 65 20 70 72 65 76 |rned to |the prev|
|000018c0| 69 6f 75 73 20 65 6e 74 | 72 79 20 69 6e 20 74 68 |ious ent|ry in th|
|000018d0| 65 20 73 61 6d 65 20 64 | 69 72 65 63 74 6f 72 79 |e same d|irectory|
|000018e0| 0a 58 20 2a 20 62 6c 6f | 63 6b 20 62 79 20 69 6e |.X * blo|ck by in|
|000018f0| 63 72 65 61 73 69 6e 67 | 20 69 74 73 20 64 70 2d |creasing| its dp-|
|00001900| 3e 64 5f 72 65 63 6c 65 | 6e 2e 20 20 49 66 20 74 |>d_recle|n. If t|
|00001910| 68 65 20 66 69 72 73 74 | 20 65 6e 74 72 79 20 6f |he first| entry o|
|00001920| 66 0a 58 20 2a 20 61 20 | 64 69 72 65 63 74 6f 72 |f.X * a |director|
|00001930| 79 20 62 6c 6f 63 6b 20 | 69 73 20 66 72 65 65 2c |y block |is free,|
|00001940| 20 74 68 65 6e 20 69 74 | 73 20 64 70 2d 3e 64 5f | then it|s dp->d_|
|00001950| 69 6e 6f 20 69 73 20 73 | 65 74 20 74 6f 20 30 2e |ino is s|et to 0.|
|00001960| 0a 58 20 2a 20 45 6e 74 | 72 69 65 73 20 6f 74 68 |.X * Ent|ries oth|
|00001970| 65 72 20 74 68 61 6e 20 | 74 68 65 20 66 69 72 73 |er than |the firs|
|00001980| 74 20 69 6e 20 61 20 64 | 69 72 65 63 74 6f 72 79 |t in a d|irectory|
|00001990| 20 64 6f 20 6e 6f 74 20 | 6e 6f 72 6d 61 6c 6c 79 | do not |normally|
|000019a0| 20 68 61 76 65 0a 58 20 | 2a 20 64 70 2d 3e 64 5f | have.X |* dp->d_|
|000019b0| 69 6e 6f 20 73 65 74 20 | 74 6f 20 30 2e 0a 58 20 |ino set |to 0..X |
|000019c0| 2a 2f 0a 58 23 64 65 66 | 69 6e 65 20 44 49 52 42 |*/.X#def|ine DIRB|
|000019d0| 4c 4b 53 49 5a 09 35 31 | 32 0a 58 23 69 66 64 65 |LKSIZ.51|2.X#ifde|
|000019e0| 66 20 56 4d 55 4e 49 58 | 0a 58 23 64 65 66 69 6e |f VMUNIX|.X#defin|
|000019f0| 65 09 4d 41 58 4e 41 4d | 4c 45 4e 09 32 35 35 0a |e.MAXNAM|LEN.255.|
|00001a00| 58 23 65 6c 73 65 0a 58 | 23 64 65 66 69 6e 65 09 |X#else.X|#define.|
|00001a10| 4d 41 58 4e 41 4d 4c 45 | 4e 09 31 34 0a 58 23 65 |MAXNAMLE|N.14.X#e|
|00001a20| 6e 64 69 66 0a 58 0a 58 | 73 74 72 75 63 74 09 64 |ndif.X.X|struct.d|
|00001a30| 69 72 65 63 74 20 7b 0a | 58 09 2f 2a 20 75 6e 73 |irect {.|X./* uns|
|00001a40| 69 67 6e 65 64 20 2a 2f | 20 6c 6f 6e 67 09 64 5f |igned */| long.d_|
|00001a50| 69 6e 6f 3b 09 2f 2a 20 | 69 6e 6f 64 65 20 6e 75 |ino;./* |inode nu|
|00001a60| 6d 62 65 72 20 6f 66 20 | 65 6e 74 72 79 20 2a 2f |mber of |entry */|
|00001a70| 0a 58 09 75 6e 73 69 67 | 6e 65 64 20 73 68 6f 72 |.X.unsig|ned shor|
|00001a80| 74 09 64 5f 72 65 63 6c | 65 6e 3b 09 2f 2a 20 6c |t.d_recl|en;./* l|
|00001a90| 65 6e 67 74 68 20 6f 66 | 20 74 68 69 73 20 72 65 |ength of| this re|
|00001aa0| 63 6f 72 64 20 2a 2f 0a | 58 09 75 6e 73 69 67 6e |cord */.|X.unsign|
|00001ab0| 65 64 20 73 68 6f 72 74 | 09 64 5f 6e 61 6d 6c 65 |ed short|.d_namle|
|00001ac0| 6e 3b 09 2f 2a 20 6c 65 | 6e 67 74 68 20 6f 66 20 |n;./* le|ngth of |
|00001ad0| 73 74 72 69 6e 67 20 69 | 6e 20 64 5f 6e 61 6d 65 |string i|n d_name|
|00001ae0| 20 2a 2f 0a 58 09 63 68 | 61 72 09 64 5f 6e 61 6d | */.X.ch|ar.d_nam|
|00001af0| 65 5b 4d 41 58 4e 41 4d | 4c 45 4e 20 2b 20 31 5d |e[MAXNAM|LEN + 1]|
|00001b00| 3b 09 2f 2a 20 6e 61 6d | 65 20 6d 75 73 74 20 62 |;./* nam|e must b|
|00001b10| 65 20 6e 6f 20 6c 6f 6e | 67 65 72 20 74 68 61 6e |e no lon|ger than|
|00001b20| 20 74 68 69 73 20 2a 2f | 0a 58 7d 3b 0a 58 0a 58 | this */|.X};.X.X|
|00001b30| 2f 2a 0a 58 20 2a 20 54 | 68 65 20 44 49 52 53 49 |/*.X * T|he DIRSI|
|00001b40| 5a 20 6d 61 63 72 6f 20 | 67 69 76 65 73 20 74 68 |Z macro |gives th|
|00001b50| 65 20 6d 69 6e 69 6d 75 | 6d 20 72 65 63 6f 72 64 |e minimu|m record|
|00001b60| 20 6c 65 6e 67 74 68 20 | 77 68 69 63 68 20 77 69 | length |which wi|
|00001b70| 6c 6c 20 68 6f 6c 64 0a | 58 20 2a 20 74 68 65 20 |ll hold.|X * the |
|00001b80| 64 69 72 65 63 74 6f 72 | 79 20 65 6e 74 72 79 2e |director|y entry.|
|00001b90| 20 20 54 68 69 73 20 72 | 65 71 75 69 72 65 73 20 | This r|equires |
|00001ba0| 74 68 65 20 61 6d 6f 75 | 6e 74 20 6f 66 20 73 70 |the amou|nt of sp|
|00001bb0| 61 63 65 20 69 6e 20 73 | 74 72 75 63 74 20 64 69 |ace in s|truct di|
|00001bc0| 72 65 63 74 0a 58 20 2a | 20 77 69 74 68 6f 75 74 |rect.X *| without|
|00001bd0| 20 74 68 65 20 64 5f 6e | 61 6d 65 20 66 69 65 6c | the d_n|ame fiel|
|00001be0| 64 2c 20 70 6c 75 73 20 | 65 6e 6f 75 67 68 20 73 |d, plus |enough s|
|00001bf0| 70 61 63 65 20 66 6f 72 | 20 74 68 65 20 6e 61 6d |pace for| the nam|
|00001c00| 65 20 77 69 74 68 20 61 | 20 74 65 72 6d 69 6e 61 |e with a| termina|
|00001c10| 74 69 6e 67 0a 58 20 2a | 20 6e 75 6c 6c 20 62 79 |ting.X *| null by|
|00001c20| 74 65 20 28 64 70 2d 3e | 64 5f 6e 61 6d 6c 65 6e |te (dp->|d_namlen|
|00001c30| 2b 31 29 2c 20 72 6f 75 | 6e 64 65 64 20 75 70 20 |+1), rou|nded up |
|00001c40| 74 6f 20 61 20 34 20 62 | 79 74 65 20 62 6f 75 6e |to a 4 b|yte boun|
|00001c50| 64 61 72 79 2e 0a 58 20 | 2a 2f 0a 58 23 75 6e 64 |dary..X |*/.X#und|
|00001c60| 65 66 20 44 49 52 53 49 | 5a 0a 58 23 64 65 66 69 |ef DIRSI|Z.X#defi|
|00001c70| 6e 65 20 44 49 52 53 49 | 5a 28 64 70 29 20 5c 0a |ne DIRSI|Z(dp) \.|
|00001c80| 58 20 20 20 20 28 28 73 | 69 7a 65 6f 66 20 28 73 |X ((s|izeof (s|
|00001c90| 74 72 75 63 74 20 64 69 | 72 65 63 74 29 20 2d 20 |truct di|rect) - |
|00001ca0| 28 4d 41 58 4e 41 4d 4c | 45 4e 2b 31 29 29 20 2b |(MAXNAML|EN+1)) +|
|00001cb0| 20 28 28 28 64 70 29 2d | 3e 64 5f 6e 61 6d 6c 65 | (((dp)-|>d_namle|
|00001cc0| 6e 2b 31 20 2b 20 33 29 | 20 26 7e 20 33 29 29 0a |n+1 + 3)| &~ 3)).|
|00001cd0| 58 0a 58 23 69 66 6e 64 | 65 66 20 4b 45 52 4e 45 |X.X#ifnd|ef KERNE|
|00001ce0| 4c 0a 58 2f 2a 0a 58 20 | 2a 20 44 65 66 69 6e 69 |L.X/*.X |* Defini|
|00001cf0| 74 69 6f 6e 73 20 66 6f | 72 20 6c 69 62 72 61 72 |tions fo|r librar|
|00001d00| 79 20 72 6f 75 74 69 6e | 65 73 20 6f 70 65 72 61 |y routin|es opera|
|00001d10| 74 69 6e 67 20 6f 6e 20 | 64 69 72 65 63 74 6f 72 |ting on |director|
|00001d20| 69 65 73 2e 0a 58 20 2a | 2f 0a 58 74 79 70 65 64 |ies..X *|/.Xtyped|
|00001d30| 65 66 20 73 74 72 75 63 | 74 20 5f 64 69 72 64 65 |ef struc|t _dirde|
|00001d40| 73 63 20 7b 0a 58 09 69 | 6e 74 09 64 64 5f 66 64 |sc {.X.i|nt.dd_fd|
|00001d50| 3b 0a 58 09 6c 6f 6e 67 | 09 64 64 5f 6c 6f 63 3b |;.X.long|.dd_loc;|
|00001d60| 0a 58 09 6c 6f 6e 67 09 | 64 64 5f 73 69 7a 65 3b |.X.long.|dd_size;|
|00001d70| 0a 58 09 63 68 61 72 09 | 64 64 5f 62 75 66 5b 44 |.X.char.|dd_buf[D|
|00001d80| 49 52 42 4c 4b 53 49 5a | 5d 3b 0a 58 7d 20 44 49 |IRBLKSIZ|];.X} DI|
|00001d90| 52 3b 0a 58 23 69 66 6e | 64 65 66 20 4e 55 4c 4c |R;.X#ifn|def NULL|
|00001da0| 0a 58 23 64 65 66 69 6e | 65 20 4e 55 4c 4c 20 30 |.X#defin|e NULL 0|
|00001db0| 0a 58 23 65 6e 64 69 66 | 0a 58 65 78 74 65 72 6e |.X#endif|.Xextern|
|00001dc0| 09 44 49 52 20 2a 6f 70 | 65 6e 64 69 72 28 29 3b |.DIR *op|endir();|
|00001dd0| 0a 58 65 78 74 65 72 6e | 09 73 74 72 75 63 74 20 |.Xextern|.struct |
|00001de0| 64 69 72 65 63 74 20 2a | 72 65 61 64 64 69 72 28 |direct *|readdir(|
|00001df0| 29 3b 0a 58 65 78 74 65 | 72 6e 09 6c 6f 6e 67 20 |);.Xexte|rn.long |
|00001e00| 74 65 6c 6c 64 69 72 28 | 29 3b 0a 58 23 69 66 64 |telldir(|);.X#ifd|
|00001e10| 65 66 20 76 6f 69 64 0a | 58 65 78 74 65 72 6e 09 |ef void.|Xextern.|
|00001e20| 76 6f 69 64 20 73 65 65 | 6b 64 69 72 28 29 3b 0a |void see|kdir();.|
|00001e30| 58 65 78 74 65 72 6e 09 | 76 6f 69 64 20 63 6c 6f |Xextern.|void clo|
|00001e40| 73 65 64 69 72 28 29 3b | 0a 58 23 65 6e 64 69 66 |sedir();|.X#endif|
|00001e50| 0a 58 23 64 65 66 69 6e | 65 20 72 65 77 69 6e 64 |.X#defin|e rewind|
|00001e60| 64 69 72 28 64 69 72 70 | 29 09 73 65 65 6b 64 69 |dir(dirp|).seekdi|
|00001e70| 72 28 28 64 69 72 70 29 | 2c 20 28 6c 6f 6e 67 29 |r((dirp)|, (long)|
|00001e80| 30 29 0a 58 23 65 6e 64 | 69 66 20 4b 45 52 4e 45 |0).X#end|if KERNE|
|00001e90| 4c 0a 21 0a 65 63 68 6f | 20 27 6d 61 6b 65 66 69 |L.!.echo| 'makefi|
|00001ea0| 6c 65 27 3a 0a 73 65 64 | 20 27 73 2f 5e 58 2f 2f |le':.sed| 's/^X//|
|00001eb0| 27 20 3e 27 6d 61 6b 65 | 66 69 6c 65 27 20 3c 3c |' >'make|file' <<|
|00001ec0| 27 21 27 0a 58 44 49 52 | 20 3d 20 63 6c 6f 73 65 |'!'.XDIR| = close|
|00001ed0| 64 69 72 2e 6f 20 6f 70 | 65 6e 64 69 72 2e 6f 20 |dir.o op|endir.o |
|00001ee0| 72 65 61 64 64 69 72 2e | 6f 20 73 65 65 6b 64 69 |readdir.|o seekdi|
|00001ef0| 72 2e 6f 20 74 65 6c 6c | 64 69 72 2e 6f 0a 58 43 |r.o tell|dir.o.XC|
|00001f00| 46 4c 41 47 53 3d 2d 4f | 20 2d 49 2e 20 2d 44 76 |FLAGS=-O| -I. -Dv|
|00001f10| 6f 69 64 3d 69 6e 74 0a | 58 44 45 53 54 3d 2e 2e |oid=int.|XDEST=..|
|00001f20| 0a 58 0a 58 61 6c 6c 3a | 09 24 28 44 49 52 29 0a |.X.Xall:|.$(DIR).|
|00001f30| 58 0a 58 6d 76 3a 09 24 | 28 44 49 52 29 0a 58 09 |X.Xmv:.$|(DIR).X.|
|00001f40| 6d 76 20 24 28 44 49 52 | 29 20 24 28 44 45 53 54 |mv $(DIR|) $(DEST|
|00001f50| 29 0a 58 0a 58 63 70 69 | 66 3a 09 64 69 72 2e 68 |).X.Xcpi|f:.dir.h|
|00001f60| 0a 58 09 63 70 20 64 69 | 72 2e 68 20 2f 75 73 72 |.X.cp di|r.h /usr|
|00001f70| 2f 69 6e 63 6c 75 64 65 | 2f 6e 64 69 72 2e 68 0a |/include|/ndir.h.|
|00001f80| 58 0a 58 63 6c 65 61 6e | 3a 0a 58 09 72 6d 20 2d |X.Xclean|:.X.rm -|
|00001f90| 66 20 2a 2e 6f 0a 21 0a | 65 63 68 6f 20 27 63 6c |f *.o.!.|echo 'cl|
|00001fa0| 6f 73 65 64 69 72 2e 63 | 27 3a 0a 73 65 64 20 27 |osedir.c|':.sed '|
|00001fb0| 73 2f 5e 58 2f 2f 27 20 | 3e 27 63 6c 6f 73 65 64 |s/^X//' |>'closed|
|00001fc0| 69 72 2e 63 27 20 3c 3c | 27 21 27 0a 58 73 74 61 |ir.c' <<|'!'.Xsta|
|00001fd0| 74 69 63 20 63 68 61 72 | 20 73 63 63 73 69 64 5b |tic char| sccsid[|
|00001fe0| 5d 20 3d 20 22 40 28 23 | 29 63 6c 6f 73 65 64 69 |] = "@(#|)closedi|
|00001ff0| 72 2e 63 20 34 2e 32 20 | 33 2f 31 30 2f 38 32 22 |r.c 4.2 |3/10/82"|
|00002000| 3b 0a 58 0a 58 23 69 6e | 63 6c 75 64 65 20 3c 73 |;.X.X#in|clude <s|
|00002010| 79 73 2f 74 79 70 65 73 | 2e 68 3e 0a 58 23 69 6e |ys/types|.h>.X#in|
|00002020| 63 6c 75 64 65 20 3c 64 | 69 72 2e 68 3e 0a 58 0a |clude <d|ir.h>.X.|
|00002030| 58 2f 2a 0a 58 20 2a 20 | 63 6c 6f 73 65 20 61 20 |X/*.X * |close a |
|00002040| 64 69 72 65 63 74 6f 72 | 79 2e 0a 58 20 2a 2f 0a |director|y..X */.|
|00002050| 58 76 6f 69 64 0a 58 63 | 6c 6f 73 65 64 69 72 28 |Xvoid.Xc|losedir(|
|00002060| 64 69 72 70 29 0a 58 09 | 72 65 67 69 73 74 65 72 |dirp).X.|register|
|00002070| 20 44 49 52 20 2a 64 69 | 72 70 3b 0a 58 7b 0a 58 | DIR *di|rp;.X{.X|
|00002080| 09 63 6c 6f 73 65 28 64 | 69 72 70 2d 3e 64 64 5f |.close(d|irp->dd_|
|00002090| 66 64 29 3b 0a 58 09 64 | 69 72 70 2d 3e 64 64 5f |fd);.X.d|irp->dd_|
|000020a0| 66 64 20 3d 20 2d 31 3b | 0a 58 09 64 69 72 70 2d |fd = -1;|.X.dirp-|
|000020b0| 3e 64 64 5f 6c 6f 63 20 | 3d 20 30 3b 0a 58 09 66 |>dd_loc |= 0;.X.f|
|000020c0| 72 65 65 28 28 63 68 61 | 72 20 2a 29 64 69 72 70 |ree((cha|r *)dirp|
|000020d0| 29 3b 0a 58 7d 0a 21 0a | 65 63 68 6f 20 27 6f 70 |);.X}.!.|echo 'op|
|000020e0| 65 6e 64 69 72 2e 63 27 | 3a 0a 73 65 64 20 27 73 |endir.c'|:.sed 's|
|000020f0| 2f 5e 58 2f 2f 27 20 3e | 27 6f 70 65 6e 64 69 72 |/^X//' >|'opendir|
|00002100| 2e 63 27 20 3c 3c 27 21 | 27 0a 58 2f 2a 20 43 6f |.c' <<'!|'.X/* Co|
|00002110| 70 79 72 69 67 68 74 20 | 28 63 29 20 31 39 38 32 |pyright |(c) 1982|
|00002120| 20 52 65 67 65 6e 74 73 | 20 6f 66 20 74 68 65 20 | Regents| of the |
|00002130| 55 6e 69 76 65 72 73 69 | 74 79 20 6f 66 20 43 61 |Universi|ty of Ca|
|00002140| 6c 69 66 6f 72 6e 69 61 | 20 2a 2f 0a 58 0a 58 73 |lifornia| */.X.Xs|
|00002150| 74 61 74 69 63 20 63 68 | 61 72 20 73 63 63 73 69 |tatic ch|ar sccsi|
|00002160| 64 5b 5d 20 3d 20 22 40 | 28 23 29 6f 70 65 6e 64 |d[] = "@|(#)opend|
|00002170| 69 72 2e 63 20 34 2e 34 | 20 31 31 2f 31 32 2f 38 |ir.c 4.4| 11/12/8|
|00002180| 32 22 3b 0a 58 0a 58 23 | 69 6e 63 6c 75 64 65 20 |2";.X.X#|include |
|00002190| 3c 73 79 73 2f 74 79 70 | 65 73 2e 68 3e 0a 58 23 |<sys/typ|es.h>.X#|
|000021a0| 69 6e 63 6c 75 64 65 20 | 3c 73 79 73 2f 73 74 61 |include |<sys/sta|
|000021b0| 74 2e 68 3e 0a 58 23 69 | 6e 63 6c 75 64 65 20 3c |t.h>.X#i|nclude <|
|000021c0| 64 69 72 2e 68 3e 0a 58 | 0a 58 2f 2a 0a 58 20 2a |dir.h>.X|.X/*.X *|
|000021d0| 20 6f 70 65 6e 20 61 20 | 64 69 72 65 63 74 6f 72 | open a |director|
|000021e0| 79 2e 0a 58 20 2a 2f 0a | 58 44 49 52 20 2a 0a 58 |y..X */.|XDIR *.X|
|000021f0| 6f 70 65 6e 64 69 72 28 | 6e 61 6d 65 29 0a 58 09 |opendir(|name).X.|
|00002200| 63 68 61 72 20 2a 6e 61 | 6d 65 3b 0a 58 7b 0a 58 |char *na|me;.X{.X|
|00002210| 09 72 65 67 69 73 74 65 | 72 20 44 49 52 20 2a 64 |.registe|r DIR *d|
|00002220| 69 72 70 3b 0a 58 09 72 | 65 67 69 73 74 65 72 20 |irp;.X.r|egister |
|00002230| 69 6e 74 20 66 64 3b 0a | 58 09 73 74 72 75 63 74 |int fd;.|X.struct|
|00002240| 20 73 74 61 74 20 73 74 | 61 74 62 75 66 3b 0a 58 | stat st|atbuf;.X|
|00002250| 09 63 68 61 72 20 2a 6d | 61 6c 6c 6f 63 28 29 3b |.char *m|alloc();|
|00002260| 0a 58 0a 58 09 69 66 20 | 28 28 66 64 20 3d 20 6f |.X.X.if |((fd = o|
|00002270| 70 65 6e 28 6e 61 6d 65 | 2c 20 30 29 29 20 3d 3d |pen(name|, 0)) ==|
|00002280| 20 2d 31 29 0a 58 09 09 | 72 65 74 75 72 6e 20 4e | -1).X..|return N|
|00002290| 55 4c 4c 3b 0a 58 09 69 | 66 20 28 66 73 74 61 74 |ULL;.X.i|f (fstat|
|000022a0| 28 66 64 2c 20 26 73 74 | 61 74 62 75 66 29 20 3d |(fd, &st|atbuf) =|
|000022b0| 3d 20 2d 31 20 7c 7c 20 | 21 28 73 74 61 74 62 75 |= -1 || |!(statbu|
|000022c0| 66 2e 73 74 5f 6d 6f 64 | 65 20 26 20 53 5f 49 46 |f.st_mod|e & S_IF|
|000022d0| 44 49 52 29 29 20 7b 0a | 58 09 09 63 6c 6f 73 65 |DIR)) {.|X..close|
|000022e0| 28 66 64 29 3b 0a 58 09 | 09 72 65 74 75 72 6e 20 |(fd);.X.|.return |
|000022f0| 4e 55 4c 4c 3b 0a 58 09 | 7d 0a 58 09 69 66 20 28 |NULL;.X.|}.X.if (|
|00002300| 28 64 69 72 70 20 3d 20 | 28 44 49 52 20 2a 29 6d |(dirp = |(DIR *)m|
|00002310| 61 6c 6c 6f 63 28 73 69 | 7a 65 6f 66 28 44 49 52 |alloc(si|zeof(DIR|
|00002320| 29 29 29 20 3d 3d 20 4e | 55 4c 4c 29 20 7b 0a 58 |))) == N|ULL) {.X|
|00002330| 09 09 63 6c 6f 73 65 20 | 28 66 64 29 3b 0a 58 09 |..close |(fd);.X.|
|00002340| 09 72 65 74 75 72 6e 20 | 4e 55 4c 4c 3b 0a 58 09 |.return |NULL;.X.|
|00002350| 7d 0a 58 09 64 69 72 70 | 2d 3e 64 64 5f 66 64 20 |}.X.dirp|->dd_fd |
|00002360| 3d 20 66 64 3b 0a 58 09 | 64 69 72 70 2d 3e 64 64 |= fd;.X.|dirp->dd|
|00002370| 5f 6c 6f 63 20 3d 20 30 | 3b 0a 58 09 64 69 72 70 |_loc = 0|;.X.dirp|
|00002380| 2d 3e 64 64 5f 73 69 7a | 65 20 3d 20 30 3b 09 2f |->dd_siz|e = 0;./|
|00002390| 2a 20 73 6f 20 74 68 61 | 74 20 74 65 6c 6c 64 69 |* so tha|t telldi|
|000023a0| 72 20 77 69 6c 6c 20 77 | 6f 72 6b 20 62 65 66 6f |r will w|ork befo|
|000023b0| 72 65 20 72 65 61 64 64 | 69 72 20 2a 2f 0a 58 09 |re readd|ir */.X.|
|000023c0| 72 65 74 75 72 6e 20 64 | 69 72 70 3b 0a 58 7d 0a |return d|irp;.X}.|
|000023d0| 21 0a 65 63 68 6f 20 27 | 72 65 61 64 64 69 72 2e |!.echo '|readdir.|
|000023e0| 63 27 3a 0a 73 65 64 20 | 27 73 2f 5e 58 2f 2f 27 |c':.sed |'s/^X//'|
|000023f0| 20 3e 27 72 65 61 64 64 | 69 72 2e 63 27 20 3c 3c | >'readd|ir.c' <<|
|00002400| 27 21 27 0a 58 2f 2a 20 | 43 6f 70 79 72 69 67 68 |'!'.X/* |Copyrigh|
|00002410| 74 20 28 63 29 20 31 39 | 38 32 20 52 65 67 65 6e |t (c) 19|82 Regen|
|00002420| 74 73 20 6f 66 20 74 68 | 65 20 55 6e 69 76 65 72 |ts of th|e Univer|
|00002430| 73 69 74 79 20 6f 66 20 | 43 61 6c 69 66 6f 72 6e |sity of |Californ|
|00002440| 69 61 20 2a 2f 0a 58 0a | 58 73 74 61 74 69 63 20 |ia */.X.|Xstatic |
|00002450| 63 68 61 72 20 73 63 63 | 73 69 64 5b 5d 20 3d 20 |char scc|sid[] = |
|00002460| 22 40 28 23 29 72 65 61 | 64 64 69 72 2e 63 20 34 |"@(#)rea|ddir.c 4|
|00002470| 2e 33 20 38 2f 38 2f 38 | 32 22 3b 0a 58 0a 58 23 |.3 8/8/8|2";.X.X#|
|00002480| 69 6e 63 6c 75 64 65 20 | 3c 73 79 73 2f 74 79 70 |include |<sys/typ|
|00002490| 65 73 2e 68 3e 0a 58 23 | 69 6e 63 6c 75 64 65 20 |es.h>.X#|include |
|000024a0| 3c 64 69 72 2e 68 3e 0a | 58 0a 58 2f 2a 0a 58 20 |<dir.h>.|X.X/*.X |
|000024b0| 2a 20 72 65 61 64 20 61 | 6e 20 6f 6c 64 20 73 74 |* read a|n old st|
|000024c0| 6c 79 65 20 64 69 72 65 | 63 74 6f 72 79 20 65 6e |lye dire|ctory en|
|000024d0| 74 72 79 20 61 6e 64 20 | 70 72 65 73 65 6e 74 20 |try and |present |
|000024e0| 69 74 20 61 73 20 61 20 | 6e 65 77 20 6f 6e 65 0a |it as a |new one.|
|000024f0| 58 20 2a 2f 0a 58 23 64 | 65 66 69 6e 65 09 4f 44 |X */.X#d|efine.OD|
|00002500| 49 52 53 49 5a 09 31 34 | 0a 58 0a 58 73 74 72 75 |IRSIZ.14|.X.Xstru|
|00002510| 63 74 09 6f 6c 64 64 69 | 72 65 63 74 20 7b 0a 58 |ct.olddi|rect {.X|
|00002520| 09 69 6e 6f 5f 74 09 6f | 64 5f 69 6e 6f 3b 0a 58 |.ino_t.o|d_ino;.X|
|00002530| 09 63 68 61 72 09 6f 64 | 5f 6e 61 6d 65 5b 4f 44 |.char.od|_name[OD|
|00002540| 49 52 53 49 5a 5d 3b 0a | 58 7d 3b 0a 58 0a 58 2f |IRSIZ];.|X};.X.X/|
|00002550| 2a 0a 58 20 2a 20 67 65 | 74 20 6e 65 78 74 20 65 |*.X * ge|t next e|
|00002560| 6e 74 72 79 20 69 6e 20 | 61 20 64 69 72 65 63 74 |ntry in |a direct|
|00002570| 6f 72 79 2e 0a 58 20 2a | 2f 0a 58 73 74 72 75 63 |ory..X *|/.Xstruc|
|00002580| 74 20 64 69 72 65 63 74 | 20 2a 0a 58 72 65 61 64 |t direct| *.Xread|
|00002590| 64 69 72 28 64 69 72 70 | 29 0a 58 09 72 65 67 69 |dir(dirp|).X.regi|
|000025a0| 73 74 65 72 20 44 49 52 | 20 2a 64 69 72 70 3b 0a |ster DIR| *dirp;.|
|000025b0| 58 7b 0a 58 09 72 65 67 | 69 73 74 65 72 20 73 74 |X{.X.reg|ister st|
|000025c0| 72 75 63 74 20 6f 6c 64 | 64 69 72 65 63 74 20 2a |ruct old|direct *|
|000025d0| 64 70 3b 0a 58 09 73 74 | 61 74 69 63 20 73 74 72 |dp;.X.st|atic str|
|000025e0| 75 63 74 20 64 69 72 65 | 63 74 20 64 69 72 3b 0a |uct dire|ct dir;.|
|000025f0| 58 0a 58 09 66 6f 72 20 | 28 3b 3b 29 20 7b 0a 58 |X.X.for |(;;) {.X|
|00002600| 09 09 69 66 20 28 64 69 | 72 70 2d 3e 64 64 5f 6c |..if (di|rp->dd_l|
|00002610| 6f 63 20 3d 3d 20 30 29 | 20 7b 0a 58 09 09 09 64 |oc == 0)| {.X...d|
|00002620| 69 72 70 2d 3e 64 64 5f | 73 69 7a 65 20 3d 20 72 |irp->dd_|size = r|
|00002630| 65 61 64 28 64 69 72 70 | 2d 3e 64 64 5f 66 64 2c |ead(dirp|->dd_fd,|
|00002640| 20 64 69 72 70 2d 3e 64 | 64 5f 62 75 66 2c 20 0a | dirp->d|d_buf, .|
|00002650| 58 09 09 09 20 20 20 20 | 44 49 52 42 4c 4b 53 49 |X... |DIRBLKSI|
|00002660| 5a 29 3b 0a 58 09 09 09 | 69 66 20 28 64 69 72 70 |Z);.X...|if (dirp|
|00002670| 2d 3e 64 64 5f 73 69 7a | 65 20 3c 3d 20 30 29 20 |->dd_siz|e <= 0) |
|00002680| 7b 0a 58 09 09 09 09 64 | 69 72 70 2d 3e 64 64 5f |{.X....d|irp->dd_|
|00002690| 73 69 7a 65 20 3d 20 30 | 3b 0a 58 09 09 09 09 72 |size = 0|;.X....r|
|000026a0| 65 74 75 72 6e 20 4e 55 | 4c 4c 3b 0a 58 09 09 09 |eturn NU|LL;.X...|
|000026b0| 7d 0a 58 09 09 7d 0a 58 | 09 09 69 66 20 28 64 69 |}.X..}.X|..if (di|
|000026c0| 72 70 2d 3e 64 64 5f 6c | 6f 63 20 3e 3d 20 64 69 |rp->dd_l|oc >= di|
|000026d0| 72 70 2d 3e 64 64 5f 73 | 69 7a 65 29 20 7b 0a 58 |rp->dd_s|ize) {.X|
|000026e0| 09 09 09 64 69 72 70 2d | 3e 64 64 5f 6c 6f 63 20 |...dirp-|>dd_loc |
|000026f0| 3d 20 30 3b 0a 58 09 09 | 09 63 6f 6e 74 69 6e 75 |= 0;.X..|.continu|
|00002700| 65 3b 0a 58 09 09 7d 0a | 58 09 09 64 70 20 3d 20 |e;.X..}.|X..dp = |
|00002710| 28 73 74 72 75 63 74 20 | 6f 6c 64 64 69 72 65 63 |(struct |olddirec|
|00002720| 74 20 2a 29 28 64 69 72 | 70 2d 3e 64 64 5f 62 75 |t *)(dir|p->dd_bu|
|00002730| 66 20 2b 20 64 69 72 70 | 2d 3e 64 64 5f 6c 6f 63 |f + dirp|->dd_loc|
|00002740| 29 3b 0a 58 09 09 64 69 | 72 70 2d 3e 64 64 5f 6c |);.X..di|rp->dd_l|
|00002750| 6f 63 20 2b 3d 20 73 69 | 7a 65 6f 66 28 73 74 72 |oc += si|zeof(str|
|00002760| 75 63 74 20 6f 6c 64 64 | 69 72 65 63 74 29 3b 0a |uct oldd|irect);.|
|00002770| 58 09 09 69 66 20 28 64 | 70 2d 3e 6f 64 5f 69 6e |X..if (d|p->od_in|
|00002780| 6f 20 3d 3d 20 30 29 0a | 58 09 09 09 63 6f 6e 74 |o == 0).|X...cont|
|00002790| 69 6e 75 65 3b 0a 58 09 | 09 64 69 72 2e 64 5f 69 |inue;.X.|.dir.d_i|
|000027a0| 6e 6f 20 3d 20 64 70 2d | 3e 6f 64 5f 69 6e 6f 3b |no = dp-|>od_ino;|
|000027b0| 0a 58 09 09 73 74 72 6e | 63 70 79 28 64 69 72 2e |.X..strn|cpy(dir.|
|000027c0| 64 5f 6e 61 6d 65 2c 20 | 64 70 2d 3e 6f 64 5f 6e |d_name, |dp->od_n|
|000027d0| 61 6d 65 2c 20 4f 44 49 | 52 53 49 5a 29 3b 0a 58 |ame, ODI|RSIZ);.X|
|000027e0| 09 09 64 69 72 2e 64 5f | 6e 61 6d 65 5b 4f 44 49 |..dir.d_|name[ODI|
|000027f0| 52 53 49 5a 5d 20 3d 20 | 27 5c 30 27 3b 20 2f 2a |RSIZ] = |'\0'; /*|
|00002800| 20 69 6e 73 75 72 65 20 | 6e 75 6c 6c 20 74 65 72 | insure |null ter|
|00002810| 6d 69 6e 61 74 69 6f 6e | 20 2a 2f 0a 58 09 09 64 |mination| */.X..d|
|00002820| 69 72 2e 64 5f 6e 61 6d | 6c 65 6e 20 3d 20 73 74 |ir.d_nam|len = st|
|00002830| 72 6c 65 6e 28 64 69 72 | 2e 64 5f 6e 61 6d 65 29 |rlen(dir|.d_name)|
|00002840| 3b 0a 58 09 09 64 69 72 | 2e 64 5f 72 65 63 6c 65 |;.X..dir|.d_recle|
|00002850| 6e 20 3d 20 44 49 52 42 | 4c 4b 53 49 5a 3b 0a 58 |n = DIRB|LKSIZ;.X|
|00002860| 09 09 72 65 74 75 72 6e | 20 28 26 64 69 72 29 3b |..return| (&dir);|
|00002870| 0a 58 09 7d 0a 58 7d 0a | 21 0a 65 63 68 6f 20 27 |.X.}.X}.|!.echo '|
|00002880| 73 65 65 6b 64 69 72 2e | 63 27 3a 0a 73 65 64 20 |seekdir.|c':.sed |
|00002890| 27 73 2f 5e 58 2f 2f 27 | 20 3e 27 73 65 65 6b 64 |'s/^X//'| >'seekd|
|000028a0| 69 72 2e 63 27 20 3c 3c | 27 21 27 0a 58 73 74 61 |ir.c' <<|'!'.Xsta|
|000028b0| 74 69 63 20 63 68 61 72 | 20 73 63 63 73 69 64 5b |tic char| sccsid[|
|000028c0| 5d 20 3d 20 22 40 28 23 | 29 73 65 65 6b 64 69 72 |] = "@(#|)seekdir|
|000028d0| 2e 63 20 34 2e 39 20 33 | 2f 32 35 2f 38 33 22 3b |.c 4.9 3|/25/83";|
|000028e0| 0a 58 0a 58 23 69 6e 63 | 6c 75 64 65 20 3c 73 79 |.X.X#inc|lude <sy|
|000028f0| 73 2f 70 61 72 61 6d 2e | 68 3e 0a 58 23 69 6e 63 |s/param.|h>.X#inc|
|00002900| 6c 75 64 65 20 3c 64 69 | 72 2e 68 3e 0a 58 0a 58 |lude <di|r.h>.X.X|
|00002910| 2f 2a 0a 58 20 2a 20 73 | 65 65 6b 20 74 6f 20 61 |/*.X * s|eek to a|
|00002920| 6e 20 65 6e 74 72 79 20 | 69 6e 20 61 20 64 69 72 |n entry |in a dir|
|00002930| 65 63 74 6f 72 79 2e 0a | 58 20 2a 20 4f 6e 6c 79 |ectory..|X * Only|
|00002940| 20 76 61 6c 75 65 73 20 | 72 65 74 75 72 6e 65 64 | values |returned|
|00002950| 20 62 79 20 22 74 65 6c | 6c 64 69 72 22 20 73 68 | by "tel|ldir" sh|
|00002960| 6f 75 6c 64 20 62 65 20 | 70 61 73 73 65 64 20 74 |ould be |passed t|
|00002970| 6f 20 73 65 65 6b 64 69 | 72 2e 0a 58 20 2a 2f 0a |o seekdi|r..X */.|
|00002980| 58 76 6f 69 64 0a 58 73 | 65 65 6b 64 69 72 28 64 |Xvoid.Xs|eekdir(d|
|00002990| 69 72 70 2c 20 6c 6f 63 | 29 0a 58 09 72 65 67 69 |irp, loc|).X.regi|
|000029a0| 73 74 65 72 20 44 49 52 | 20 2a 64 69 72 70 3b 0a |ster DIR| *dirp;.|
|000029b0| 58 09 6c 6f 6e 67 20 6c | 6f 63 3b 0a 58 7b 0a 58 |X.long l|oc;.X{.X|
|000029c0| 09 6c 6f 6e 67 20 63 75 | 72 6c 6f 63 2c 20 62 61 |.long cu|rloc, ba|
|000029d0| 73 65 2c 20 6f 66 66 73 | 65 74 3b 0a 58 09 73 74 |se, offs|et;.X.st|
|000029e0| 72 75 63 74 20 64 69 72 | 65 63 74 20 2a 64 70 3b |ruct dir|ect *dp;|
|000029f0| 0a 58 09 65 78 74 65 72 | 6e 20 6c 6f 6e 67 20 6c |.X.exter|n long l|
|00002a00| 73 65 65 6b 28 29 3b 0a | 58 0a 58 09 63 75 72 6c |seek();.|X.X.curl|
|00002a10| 6f 63 20 3d 20 74 65 6c | 6c 64 69 72 28 64 69 72 |oc = tel|ldir(dir|
|00002a20| 70 29 3b 0a 58 09 69 66 | 20 28 6c 6f 63 20 3d 3d |p);.X.if| (loc ==|
|00002a30| 20 63 75 72 6c 6f 63 29 | 0a 58 09 09 72 65 74 75 | curloc)|.X..retu|
|00002a40| 72 6e 3b 0a 58 09 62 61 | 73 65 20 3d 20 6c 6f 63 |rn;.X.ba|se = loc|
|00002a50| 20 26 20 7e 28 44 49 52 | 42 4c 4b 53 49 5a 20 2d | & ~(DIR|BLKSIZ -|
|00002a60| 20 31 29 3b 0a 58 09 6f | 66 66 73 65 74 20 3d 20 | 1);.X.o|ffset = |
|00002a70| 6c 6f 63 20 26 20 28 44 | 49 52 42 4c 4b 53 49 5a |loc & (D|IRBLKSIZ|
|00002a80| 20 2d 20 31 29 3b 0a 58 | 09 28 76 6f 69 64 29 20 | - 1);.X|.(void) |
|00002a90| 6c 73 65 65 6b 28 64 69 | 72 70 2d 3e 64 64 5f 66 |lseek(di|rp->dd_f|
|00002aa0| 64 2c 20 62 61 73 65 2c | 20 30 29 3b 0a 58 09 64 |d, base,| 0);.X.d|
|00002ab0| 69 72 70 2d 3e 64 64 5f | 73 69 7a 65 20 3d 20 30 |irp->dd_|size = 0|
|00002ac0| 3b 0a 58 09 64 69 72 70 | 2d 3e 64 64 5f 6c 6f 63 |;.X.dirp|->dd_loc|
|00002ad0| 20 3d 20 30 3b 0a 58 09 | 77 68 69 6c 65 20 28 64 | = 0;.X.|while (d|
|00002ae0| 69 72 70 2d 3e 64 64 5f | 6c 6f 63 20 3c 20 6f 66 |irp->dd_|loc < of|
|00002af0| 66 73 65 74 29 20 7b 0a | 58 09 09 64 70 20 3d 20 |fset) {.|X..dp = |
|00002b00| 72 65 61 64 64 69 72 28 | 64 69 72 70 29 3b 0a 58 |readdir(|dirp);.X|
|00002b10| 09 09 69 66 20 28 64 70 | 20 3d 3d 20 4e 55 4c 4c |..if (dp| == NULL|
|00002b20| 29 0a 58 09 09 09 72 65 | 74 75 72 6e 3b 0a 58 09 |).X...re|turn;.X.|
|00002b30| 7d 0a 58 7d 0a 21 0a 65 | 63 68 6f 20 27 74 65 6c |}.X}.!.e|cho 'tel|
|00002b40| 6c 64 69 72 2e 63 27 3a | 0a 73 65 64 20 27 73 2f |ldir.c':|.sed 's/|
|00002b50| 5e 58 2f 2f 27 20 3e 27 | 74 65 6c 6c 64 69 72 2e |^X//' >'|telldir.|
|00002b60| 63 27 20 3c 3c 27 21 27 | 0a 58 73 74 61 74 69 63 |c' <<'!'|.Xstatic|
|00002b70| 20 63 68 61 72 20 73 63 | 63 73 69 64 5b 5d 20 3d | char sc|csid[] =|
|00002b80| 20 22 40 28 23 29 74 65 | 6c 6c 64 69 72 2e 63 20 | "@(#)te|lldir.c |
|00002b90| 34 2e 31 20 32 2f 32 31 | 2f 38 32 22 3b 0a 58 0a |4.1 2/21|/82";.X.|
|00002ba0| 58 23 69 6e 63 6c 75 64 | 65 20 3c 73 79 73 2f 74 |X#includ|e <sys/t|
|00002bb0| 79 70 65 73 2e 68 3e 0a | 58 23 69 6e 63 6c 75 64 |ypes.h>.|X#includ|
|00002bc0| 65 20 3c 64 69 72 2e 68 | 3e 0a 58 0a 58 2f 2a 0a |e <dir.h|>.X.X/*.|
|00002bd0| 58 20 2a 20 72 65 74 75 | 72 6e 20 61 20 70 6f 69 |X * retu|rn a poi|
|00002be0| 6e 74 65 72 20 69 6e 74 | 6f 20 61 20 64 69 72 65 |nter int|o a dire|
|00002bf0| 63 74 6f 72 79 0a 58 20 | 2a 2f 0a 58 6c 6f 6e 67 |ctory.X |*/.Xlong|
|00002c00| 0a 58 74 65 6c 6c 64 69 | 72 28 64 69 72 70 29 0a |.Xtelldi|r(dirp).|
|00002c10| 58 09 44 49 52 20 2a 64 | 69 72 70 3b 0a 58 7b 0a |X.DIR *d|irp;.X{.|
|00002c20| 58 09 6c 6f 6e 67 20 6c | 73 65 65 6b 28 29 3b 0a |X.long l|seek();.|
|00002c30| 58 0a 58 09 72 65 74 75 | 72 6e 20 28 6c 73 65 65 |X.X.retu|rn (lsee|
|00002c40| 6b 28 64 69 72 70 2d 3e | 64 64 5f 66 64 2c 20 30 |k(dirp->|dd_fd, 0|
|00002c50| 4c 2c 20 31 29 20 2d 20 | 64 69 72 70 2d 3e 64 64 |L, 1) - |dirp->dd|
|00002c60| 5f 73 69 7a 65 20 2b 20 | 64 69 72 70 2d 3e 64 64 |_size + |dirp->dd|
|00002c70| 5f 6c 6f 63 29 3b 0a 58 | 7d 0a 21 0a 65 63 68 6f |_loc);.X|}.!.echo|
|00002c80| 20 64 6f 6e 65 0a | | done. | |
+--------+-------------------------+-------------------------+--------+--------+